當程式執行過程中發生「非預期錯誤」時,Python 會丟出例外(Exception)
如果沒有處理,程式會中斷執行,這在真實應用裡很危險
常見錯誤:
try:
# 嘗試執行的程式碼
x = int(input("enter a number:"))
print(10 / x)
except ValueError:
print("The input is not a number!")
except ZeroDivisionError:
print("Cannot divide by zero!")
finally:一定會執行
常用來做「收尾動作」(像是關檔案、釋放資源)
try:
f = open("data.txt", "r")
print(f.read())
except FileNotFoundError:
print("找不到檔案!")
finally:
print("程式結束,檔案關閉(模擬)")
else:當 try 沒有錯誤時才會執行
try:
num = int(input("輸入數字:"))
except:
print("輸入錯誤!")
else:
print("你輸入的是:", num)
while True:
try:
age = int(input("請輸入年齡:"))
if age < 0:
raise ValueError("年齡不能是負數")
print("你的年齡是:", age)
break
except ValueError as e:
print("錯誤:", e)
測試:
今天在學習 try/except 例外處理時,突然發現 Python 在 break 或一般程式結尾時都不加分號。這讓程式碼更簡潔,但我反而有一點不習慣。
因為在 Java 裡,每一行敘述必須以分號結尾。他有一種「這個段落結束了!」的感覺,能讓程式碼的結構在視覺上更明確。Python 感覺少了一點結尾的儀式感!
明天要進入 檔案讀寫(with open) 的主題!學會如何讀取與寫入文字檔案,讓程式能和外部世界互動,記錄資料或載入設定!